home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NetNews Offline 1
/
NetNews Offline Volume 1.iso
/
news
/
fido
/
ger
/
amiprog
/
216
< prev
next >
Wrap
Internet Message Format
|
1996-03-16
|
3KB
From: Karl_Lockhoff@p16.f575.n241.z2.fido.sub.org (Karl Lockhoff)
Organization: Just another Mac in the wall ...
Path: f575.n241.z2.fidonet.org!not-for-mail
Newsgroups: fido.ger.amiprog
Subject: Re: ProgImpuls
Message-ID: <MSGID_2=3A241=2F575.16=40fidonet_15643A3A@fidonet.org>
References: <MSGID_2=3A2437=2F477.5=40FidoNet_30be7397@fidonet.org>
Date: Mon, 04 Dec 1995 01:52:27 +0200
In einer Nachricht vom 30 Nov 95 schreibst Du an Markus Reschke:
Moin Peter
PF>>> Ich moechte gerne am Parallel-Port eine Impulsfolge erzeugen. Die
PF>>> in Wie kann ich das Multitasking-Konform erzeugen ?
MR>> Ueber das timer.device. Da Deine Zeitspanne im ms-Bereich liegt
MR>> sollte
PF> ... jepp, danke. Ich moechte beim 'timer.device' den
PF> 'microHz'-Modus benutzen, nur der kommt da wohl in Frage.
PF> Weist Du zufaellig auch wie genau das ist ?? Und ob, wenn
PF> man die Aufrufe 'zu kurz' macht, der Amiga auf die Nase
PF> faellt ??
Die Reaktionszeit haengt leider von der Systemlast ab. Es kann also
durchausvorkommen, dass einige Zeit vergeht bis dein Programm die Nachricht vom
timer.device erhaelt. Ich schlage deshalb alternativ einen
Interrupthandler vor.
MR>> es gehen. Ansonsten koenntest Du auch ein Monoflop ueber den
MR>> Parallel-Port triggern.
PF> Der Gag beim Programmieradapter den wir bauen ist, das er
PF> Harwaremaessig sehr einfach aufgebaut ist, sodass ihn andere
PF> leicht nachbauen koennen. Wir wollen daher mal die Sache
PF> Softwaretechnisch 'ausloten' :)
PF> Das IC, um das es hier geht, wird seriell programmiert.
PF> Eine Programmieranweisung setzt sich aus einem Kommando- und
PF> einem Daten- Wort zusammen.
PF> Insgesamt sind es 24 Bit die in ca. 4,8 ╡s uebertragen
PF> werden sollen. In dieser Zeitspanne will ich das Amiga-BS
PF> mit Disable()/Enable() Aus-, und natuerlich :), wieder Ein-
PF> Schalten. Mueste eigentlich klappen.
PF> Jetzt kommt eine Programmierpause von 20ms, in der das IC
PF> das Gesendete erst einmal 'Verdauen' muss. In dieser Zeit
PF> kann das BS, bis zur naechsten Programmieranweisung, ganz
PF> normal weiterroedel.
PF> Was meinst Du, haut das hin ??
Noch ein anderer Vorschlag: Der serielle Port der CIAs. ciab.resource belegen,
damit man OS-konform bleibt. Den seriellen Port benutzt man jetzt folgender
Massen: Serielle Leitung auf Ausgabe (bit 6 im CRA-Register setzen). Die
Unterlaufrate des Timers A bestimmt die Ausgaberaten und zwar werden die Daten
mit der halben Unterlaufrate herausgeschoben. Der Timer A muss hierzu
allerdings im continuous-mode laufen. Mit der Uebertragung wird begonnen,
sobald ein Wert ins SDR-Register geschrieben wird. Nach beendeter Uebertragung
wird das SP-Bit im ICR gesetzt. Man kann allerdings schon kurz vor Ablauf der
Uebertragung ein neues Byte in das SDR-Register schreiben. In diesem Fall wird
die Uebertragung ohne Unterbrechung fortgesetzt. An der SP-Leitung des Port
liegen die serielle Datan, an der CNT-Leitung der Takt. Nachdem alle zur
Programmierung verwendeten Daten uebertragen wurden, den timer stoppen und die
resource freigeben.
-
--- Karl Lockhoff
----- 2:241/575.16@fidonet
------- Member of TEAM Amiga